package com.example.string;

/**
 * 目标：快速熟悉String提供的处理字符串的常用方法
 */
public class StringDemo2 {
    public static void main(String[] args) {
        System.out.println(new Object());
        String s = "小雨Java";
        // 1.获取字符串的长度
        System.out.println(s.length()); // 6

        // 2.提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c); // 雨

        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            // i = 0 1 2 3 4 5
            char ch = s.charAt(i);
            System.out.println(ch);
        }

        System.out.println("-------------------");

        // 3.把字符串转换成字符数组,再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }

        // 4.判断字符串内容,内容一样就返回true
        String s1 = new String("小雨");
        String s2 = new String("小雨");
        // == 在判断引用数据类型的时候判断的是地址是否相同
        System.out.println(s1 == s2); // false
        // equals判断内容是否相同,因为string重写了equals方法
        System.out.println(s1.equals(s2)); // true

        // 5.忽略大小写比较字符串内容
        String c1 = "34AeFG";
        String c2 = "34aEfg";
        System.out.println(c1.equals(c2)); // false
        System.out.println(c1.equalsIgnoreCase(c2)); // true

        // 6.截取字符串内容 (包前不包后的)
        String s3 = "Java是最好的编程语言之一";
        String rs = s3.substring(0, 8);
        System.out.println(rs);

        // 7.从当前索引位置一直截取到字符串的末尾
        String rs2 = s3.substring(5);
        System.out.println(rs2);

        // 8.把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info = "这个电影简直是个垃圾,垃圾电影!!";
        String rs3 = info.replace("垃圾", "**");
        System.out.println(rs3);

        // 9.判断字符串中是否包含某个关键字
        String info2 = "Java是最好的编程语言之一,我爱Java,Java不爱我！";
        System.out.println(info2.contains("Java")); // true
        System.out.println(info2.contains("java")); // false 因为是小写的匹配规则需要完全一样
        System.out.println(info2.contains("Java2"));

        // 10.判断字符串是否以某个字符串开头
        String rs4 = "张三丰";
        System.out.println(rs4.startsWith("张")); // true
        System.out.println(rs4.startsWith("张三")); // true
        System.out.println(rs4.startsWith("张三2")); // false

        // 11.把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String rs5 = "张无忌,周芷若,殷素素,赵敏";
        String[] names = rs5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
    }
}
